const mosaic = function test(imageData, amount, canvas) {
    var data = imageData.data,
        height = imageData.height,
        width = imageData.width;
    //设置马赛克的宽高
    var mosaic = {
        x: 10,
        y: 10
    };

    //像素赋值
    //获取指定区域的像素数据后将图片进行马赛克格子划分
    for (var i = 0; i < height; i += mosaic.y)
    for (var j = 0; j < width; j += mosaic.x) {

        var num = Math.random();
        //随机抽取方格里面的一个像素点作为采色点
        var randomPixel = {
            x: Math.floor(num * mosaic.x + i),
            y: Math.floor(num * mosaic.y + j)
        };
        //获取到randomPixel之后，做一个格子内部的二维循环，将像素逐个赋值到格子内部所有像素，从而达到一个由点到面的效果
        for (var k = j; k < j + mosaic.x; k++)
        for (var l = i; l < i + mosaic.y; l++) {
            data[(l * width + k) * 4] = data[(randomPixel.x * width + randomPixel.y) * 4];
            data[(l * width + k) * 4 + 1] = data[(randomPixel.x * width + randomPixel.y) * 4 + 1];
            data[(l * width + k) * 4 + 2] = data[(randomPixel.x * width + randomPixel.y) * 4 + 2];
            data[(l * width + k) * 4 + 3] = data[(randomPixel.x * width + randomPixel.y) * 4 + 3];
        }
    }

    return imageData;
}

export default mosaic;